package com.fowo.api.model.nav.after.sell.order;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/** 订单管理售后工单 导入导出辅助模型 */
@Getter
@Setter
public class NavAfterSellOrderExcelPo {

  @NotNull(message = "售后单号不能为空")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*售后单号")
  private String afterId;

  @NotBlank(message = "系统单号不能为空")
  @Size(max = 64, message = "系统单号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*系统单号")
  private String orderId;

  @NotNull(message = "店铺不能为空")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*店铺")
  private String shopInfoShopName;

  @ExcelIgnore
  @ExcelProperty(value = "*店铺")
  private Long shopInfo;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "站点")
  private String siteName;

  @ExcelIgnore
  @ExcelProperty(value = "站点")
  private Long site;

  @NotBlank(message = "售后类型不能为空")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*售后类型")
  private String type;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "订单来源")
  private String source;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "订单标签")
  private String tag;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "退款状态")
  private String refundStatus;

  @NotBlank(message = "退款方式不能为空")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*退款方式")
  private String way;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "订单状态")
  private String status;

  @Size(max = 2048, message = "售后状态内容长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "售后状态内容")
  private String statusExplain;

  @Size(max = 50, message = "物流商返回的物流单号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "物流商返回的物流单号")
  private String deliveryWaybillId;

  @Size(max = 50, message = "买家姓名长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "买家姓名")
  private String buyerName;

  @Size(max = 50, message = "买家邮箱长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "买家邮箱")
  private String buyerEmail;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "客选物流")
  private String deliveryLogisticsLabel;

  @ExcelIgnore
  @ExcelProperty(value = "客选物流")
  private Long deliveryLogistics;

  @ExcelProperty(value = "客付运费")
  private java.math.BigDecimal deliveryRealFreight;

  @Size(max = 50, message = "跟踪号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "跟踪号")
  private String deliveryTrackId;

  @Size(max = 50, message = "收件人长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "收件人")
  private String deliveryReceipt;

  @Size(max = 50, message = "邮编长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "邮编")
  private String deliveryZipCode;

  @Size(max = 50, message = "电话长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "电话")
  private String deliveryPhone;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "国家/地区")
  private String deliveryCountryCountry;

  @ExcelIgnore
  @ExcelProperty(value = "国家/地区")
  private Long deliveryCountry;

  @Size(max = 50, message = "省/州长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "省/州")
  private String deliveryProvince;

  @Size(max = 50, message = "城市长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "城市")
  private String deliveryCity;

  @Size(max = 50, message = "区/县长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "区/县")
  private String deliveryArea;

  @Size(max = 50, message = "门牌号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "门牌号")
  private String deliveryHouseNumber;

  @Size(max = 50, message = "公司名长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "公司名")
  private String deliveryCompany;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "地址类型")
  private String deliveryAddressType;

  @Size(max = 50, message = "详细地址1长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "详细地址1")
  private String deliveryAddress1;

  @Size(max = 50, message = "详细地址2长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "详细地址2")
  private String deliveryAddress2;

  @Size(max = 50, message = "详细地址3长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "详细地址3")
  private String deliveryAddress3;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "发货仓库")
  private String deliveryWarehouseName;

  @ExcelIgnore
  @ExcelProperty(value = "发货仓库")
  private Long deliveryWarehouse;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "物流方式")
  private String deliveryLogisticsChannelLabel;

  @ExcelIgnore
  @ExcelProperty(value = "物流方式")
  private Long deliveryLogisticsChannel;

  @Size(max = 50, message = "客服备注长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "客服备注")
  private String remark;

  @ExcelProperty(value = "订单金额")
  private java.math.BigDecimal totalAmount;

  @ExcelProperty(value = "本次退款")
  private java.math.BigDecimal thisAmount;

  @ExcelProperty(value = "已退款")
  private java.math.BigDecimal refundAmount;
}
